1. Field of the Invention
Apparatuses and methods consistent with the present invention relate to componentizing a legacy system, and more particularly, to an apparatus and method of componentizing a legacy system that reconstructs software components, which are included in the legacy system, as abstract or logical modules according to the association between the components.
2. Description of the Related Art
In recent years, with the technical development of the software field, the importance of software management on digital apparatuses has increased. This is because functions provided by hardware and functions provided by a combination of hardware and software are being provided by only software.
A group of apparatuses having similar characteristics may be developed in such a way that each apparatus share the same platform but include a separate module for providing a predetermined function.
A component model is a concept that all function elements constituting one software system are subdivided and an abstract or a logical module structure to be easily applied to various kinds of development is provided through the association between the elements. The component model may be classified into a top-down method, in which a system is developed on the basis of the component model at the beginning of system design, and a bottom-up method, in which an existing system is analyzed to form a component model.
Modules constituting a software system are designed such that they can individually provide functions. When the functions are incorporated, the system can perform its own operation. Further, since some of the modules, which are rewritten for improving the functions thereof, are applied to the system, the software system that is capable of adapting itself to various execution environments can be implemented.
The reuse of software is achieved by defining common modules between two software systems having similar functions, and extending the functions of the common modules or adding connection codes of the common modules to the software system. Efficiency of system development is increased by the reuse of software.
A known analysis method that constructs a component model using the bottom-up method only provides software developers with one-dimensional information on the basis of reference and call information between source codes. Therefore, it is difficult for the developers to recognize a boundary between the components that are included in the developed software system. Accordingly, the developers can only construct the component model by a manual operation. That is, the developers construct the component model by the manual operation using analyzed information, which unnecessarily results in a waste of time and money when updating the existing software system.
Therefore, there is an increasing demand for a technology that automatically constructs the existing software system as a component model without needing the involvement of the developers.